perm filename EKL.NOT[F82,JMC] blob sn#688562 filedate 1982-11-14 generic text, type C, neo UTF8
COMMENT ⊗   VALID 00002 PAGES
C REC  PAGE   DESCRIPTION
C00001 00001
C00002 00002	the new rewriter in ekl seems to work: here is an example of its power:
C00004 ENDMK
C⊗;
;the new rewriter in ekl seems to work: here is an example of its power:
;a one line proof of associativity of append

(get-proofs lispax)
(proof append)
(DECL NEWAPPEND (TYPE: |(GROUND⊗(GROUND*))→GROUND|) (SYNTYPE: CONSTANT)
  (INFIXNAME: **) (BINDINGPOWER: 840))

(AXIOM |∀U V.U**V=(IF NULL U THEN V ELSE CAR U.(CDR U**V))|)
(label appendef)

(AXIOM |∀U V.LISTP U**V|) (label simpinfo) (label sortinfo)

;you can now deduce associativity as follows:
(ue (phi |λu.(u**v)**w=u**(v**w)|) listinduction (use appendef) sortinfo simpinfo)
∀U.(U ** V) ** W=U ** (V ** W)

;or:
(ue (phi |λu.(u**v)**w=u**(v**w)|) listinduction nil appendef sortinfo simpinfo)
∀U.(U ** V) ** W=U ** (V ** W)